gtk4.git
6 years agoFix the compiler warning, again
Matthias Clasen [Tue, 7 May 2019 14:57:53 +0000 (14:57 +0000)]
Fix the compiler warning, again

6 years agoFix a compiler warning
Matthias Clasen [Tue, 7 May 2019 04:01:21 +0000 (04:01 +0000)]
Fix a compiler warning

6 years ago3.96
Matthias Clasen [Tue, 7 May 2019 03:01:40 +0000 (03:01 +0000)]
3.96

6 years agoMark a failing reftest as xfail
Matthias Clasen [Tue, 7 May 2019 03:26:22 +0000 (03:26 +0000)]
Mark a failing reftest as xfail

I don't know why we expect different window types
to render identically in the first place.

6 years agoUpdate a11y tests
Matthias Clasen [Mon, 6 May 2019 23:33:13 +0000 (23:33 +0000)]
Update a11y tests

6 years agoa11y: Stop using child-notify
Matthias Clasen [Tue, 7 May 2019 02:20:29 +0000 (02:20 +0000)]
a11y: Stop using child-notify

This was showing up in the accessibility tests failing.

6 years agowidget: Revert the event translation change
Matthias Clasen [Mon, 6 May 2019 22:20:51 +0000 (22:20 +0000)]
widget: Revert the event translation change

This is a temporary revert to make menus work
in the 3.96 release, until we land the popup
surface work and port menus to it.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1755
6 years agoMerge branch 'wip/headers' into 'master'
Benjamin Otte [Mon, 6 May 2019 18:24:49 +0000 (18:24 +0000)]
Merge branch 'wip/headers' into 'master'

Wip/headers

See merge request GNOME/gtk!824

6 years agobroadway: Install headers
Benjamin Otte [Mon, 6 May 2019 18:09:52 +0000 (20:09 +0200)]
broadway: Install headers

How are we going to check a display for its broadway-ness otherwise?

6 years agobuild: Install the backend headers in the backend directories
Benjamin Otte [Mon, 6 May 2019 18:09:03 +0000 (20:09 +0200)]
build: Install the backend headers in the backend directories

That's where they are in the sources and we include them from other
headers. So make sure the directories match.

6 years agoUpdate POTFILES.skip
Piotr Drąg [Mon, 6 May 2019 16:55:40 +0000 (18:55 +0200)]
Update POTFILES.skip

6 years agogl renderer: Fix coloring shader
Timm Bäder [Mon, 6 May 2019 15:58:55 +0000 (17:58 +0200)]
gl renderer: Fix coloring shader

We *just* pre-multiplied u_color but then didn't use its rgb values.
This fixes backdrop scale marks in Adwaita to not be white.

6 years agogl renderer: Fix blend shader
Timm Bäder [Mon, 6 May 2019 15:33:48 +0000 (17:33 +0200)]
gl renderer: Fix blend shader

6 years agotestsuite: Add blend-difference test case
Timm Bäder [Mon, 6 May 2019 15:33:29 +0000 (17:33 +0200)]
testsuite: Add blend-difference test case

Comparing blend nodes with mode: difference

6 years agotestsuite: Add a blend node test case
Timm Bäder [Mon, 6 May 2019 15:26:46 +0000 (17:26 +0200)]
testsuite: Add a blend node test case

This is currently broken in the GL renderer.

6 years agoSome node editor improvements
Timm Bäder [Sat, 4 May 2019 07:22:01 +0000 (09:22 +0200)]
Some node editor improvements

6 years agoMerge branch 'header-bar-leak4' into 'master'
Matthias Clasen [Mon, 6 May 2019 14:17:17 +0000 (14:17 +0000)]
Merge branch 'header-bar-leak4' into 'master'

GtkHeaderBar: Don't leak decoration layout

See merge request GNOME/gtk!822

6 years agoMerge branch 'issue-1863' into 'master'
Emmanuele Bassi [Mon, 6 May 2019 12:01:47 +0000 (12:01 +0000)]
Merge branch 'issue-1863' into 'master'

Allow setting the GtkLayoutManager type per-class

Closes #1863

See merge request GNOME/gtk!821

6 years agoMake get_layout_manager_type() public
Emmanuele Bassi [Mon, 6 May 2019 11:15:21 +0000 (12:15 +0100)]
Make get_layout_manager_type() public

The inspector, and other tools introspecting the widget structure like
gtk-builder-tool and Glade, may very well want to access the default
layout manager used by a class, especially if there are layout
properties involved, without having a whitelist of widget/layout manager
associations.

6 years agoUse gtk_widget_class_set_layout_manager_type()
Emmanuele Bassi [Mon, 6 May 2019 11:06:27 +0000 (12:06 +0100)]
Use gtk_widget_class_set_layout_manager_type()

Instead of manually creating the layout manager inside the instance
initialization function, we can let GtkWidget do that for us.

6 years agoGtkHeaderBar: Don't leak decoration layout
Guido Günther [Mon, 6 May 2019 10:55:16 +0000 (12:55 +0200)]
GtkHeaderBar: Don't leak decoration layout

Currently we leak priv->decoration_layout if the layout is set
multiple times.

6 years agoAllow specifying the layout manager for a widget type
Emmanuele Bassi [Mon, 6 May 2019 10:57:32 +0000 (11:57 +0100)]
Allow specifying the layout manager for a widget type

Some widgets have a well-defined layout manager created alongside their
own instance; if they do, we can handle the layout manager creation at
the GtkWidget instantiation.

6 years agocsstokenizer: Consume the \ when encountering an error
Benjamin Otte [Mon, 6 May 2019 03:56:06 +0000 (05:56 +0200)]
csstokenizer: Consume the \ when encountering an error

Otherwise we infinitely end up with the error again.

Testcases added.

6 years agoMerge branch 'simplify-tests' into 'master'
Matthias Clasen [Sun, 5 May 2019 20:19:13 +0000 (20:19 +0000)]
Merge branch 'simplify-tests' into 'master'

Simplify tests

See merge request GNOME/gtk!820

6 years agoAdd some tests
Matthias Clasen [Sun, 5 May 2019 15:29:24 +0000 (15:29 +0000)]
Add some tests

These test various aspects of ui file conversion.

6 years agobuilder-tool: Handle layout properties more properly
Matthias Clasen [Sun, 5 May 2019 17:09:17 +0000 (17:09 +0000)]
builder-tool: Handle layout properties more properly

Change things so we first rewrite the whole tree,
and then simplify the rewritten tree. And look
for paramspecs for layout properties.

6 years agobuilder-tool: Stop warnings for stack rewrites
Matthias Clasen [Sun, 5 May 2019 15:49:28 +0000 (15:49 +0000)]
builder-tool: Stop warnings for stack rewrites

When rewriting a GtkStack from 3 to 4, we were emitting
warnings for missing child properties. Stop doing that.

6 years agotestsuite: Add tests for ui file rewriting
Matthias Clasen [Sun, 5 May 2019 15:23:59 +0000 (15:23 +0000)]
testsuite: Add tests for ui file rewriting

Add a test script that runs
gtk4-builder-tool simplify --3to4.
No actual tests yet.

6 years agoFix the simplify test
Matthias Clasen [Sun, 5 May 2019 15:21:58 +0000 (15:21 +0000)]
Fix the simplify test

The script was returning the wrong number of tests.

6 years agoMerge branch 'focus-fixes' into 'master'
Matthias Clasen [Sun, 5 May 2019 14:20:04 +0000 (14:20 +0000)]
Merge branch 'focus-fixes' into 'master'

Focus fixes

See merge request GNOME/gtk!819

6 years agoUpdate POTFILES.skip
Piotr Drąg [Sun, 5 May 2019 14:11:04 +0000 (16:11 +0200)]
Update POTFILES.skip

6 years agoMerge branch 'builder-tool-fixes' into 'master'
Matthias Clasen [Sun, 5 May 2019 06:57:21 +0000 (06:57 +0000)]
Merge branch 'builder-tool-fixes' into 'master'

Builder tool fixes

See merge request GNOME/gtk!817

6 years agoMerge branch 'emoji-chooser-fixes' into 'master'
Matthias Clasen [Sun, 5 May 2019 06:41:31 +0000 (06:41 +0000)]
Merge branch 'emoji-chooser-fixes' into 'master'

Emoji chooser fixes

See merge request GNOME/gtk!816

6 years agobuilder-tool: Handle default values changing
Matthias Clasen [Sat, 4 May 2019 15:59:08 +0000 (15:59 +0000)]
builder-tool: Handle default values changing

The default value of GtkWidget::visible changed
from FALSE to TRUE from GTK 3 to 4. Make --3to4
deal with this by ensuring the visible property
is explicitly set, before simplifying.

6 years agoMerge branch 'wip/otte/nodeeditor2' into 'master'
Benjamin Otte [Sun, 5 May 2019 05:40:54 +0000 (05:40 +0000)]
Merge branch 'wip/otte/nodeeditor2' into 'master'

Use a text based format for render node files

See merge request GNOME/gtk!815

6 years agogl renderer: Reset opacity when offscreen-rendering crossfade nodes
Timm Bäder [Sat, 4 May 2019 08:13:30 +0000 (10:13 +0200)]
gl renderer: Reset opacity when offscreen-rendering crossfade nodes

A pattern emerges...

6 years agotestsuite: Add serialize test for debug node
Benjamin Otte [Thu, 2 May 2019 18:09:31 +0000 (20:09 +0200)]
testsuite: Add serialize test for debug node

6 years agonode-editor: Add renderings with alternative renderers
Benjamin Otte [Sat, 9 Mar 2019 13:55:17 +0000 (14:55 +0100)]
node-editor: Add renderings with alternative renderers

That's pretty rough around the edges, but it mostly works.
Apart from sizing, screw listbox sizing.

6 years agogsk: Export gsk_vulkan_renderer_new()
Benjamin Otte [Thu, 2 May 2019 00:57:23 +0000 (02:57 +0200)]
gsk: Export gsk_vulkan_renderer_new()

6 years agogsk: Export gsk_broadway_renderer_new()
Benjamin Otte [Thu, 2 May 2019 00:46:23 +0000 (02:46 +0200)]
gsk: Export gsk_broadway_renderer_new()

... when broadway is enabled.

6 years agogsk: Export gsk_gl_renderer_new()
Benjamin Otte [Thu, 2 May 2019 00:13:16 +0000 (02:13 +0200)]
gsk: Export gsk_gl_renderer_new()

6 years agogsk: Export Cairo renderer
Benjamin Otte [Wed, 1 May 2019 21:58:57 +0000 (23:58 +0200)]
gsk: Export Cairo renderer

6 years agotestsuite: Add rounded-rect parsing test
Benjamin Otte [Wed, 1 May 2019 13:29:38 +0000 (15:29 +0200)]
testsuite: Add rounded-rect parsing test

6 years agoAdd gtk4-node-editor
Benjamin Otte [Tue, 12 Mar 2019 14:05:25 +0000 (15:05 +0100)]
Add gtk4-node-editor

It's meant to be a little editor for render nodes so we can do testing
with it.

6 years agorendernode: Parse and print blend nodes properly
Benjamin Otte [Sat, 27 Apr 2019 07:03:51 +0000 (09:03 +0200)]
rendernode: Parse and print blend nodes properly

6 years agotestsuite: Add nodeparser test case
Timm Bäder [Wed, 24 Apr 2019 06:00:04 +0000 (08:00 +0200)]
testsuite: Add nodeparser test case

A serialized frame from the widget factory!

6 years agoci: Don't disable the gsk suite
Timm Bäder [Wed, 24 Apr 2019 16:57:11 +0000 (18:57 +0200)]
ci: Don't disable the gsk suite

6 years agoAdd error func to node deserialization
Timm Bäder [Wed, 24 Apr 2019 16:30:46 +0000 (18:30 +0200)]
Add error func to node deserialization

6 years agotestsuite: Black out parts of reftest
Benjamin Otte [Sat, 27 Apr 2019 05:20:20 +0000 (07:20 +0200)]
testsuite: Black out parts of reftest

6 years agotestsuite: Remove old cairo/vulkan tests
Timm Bäder [Wed, 24 Apr 2019 11:50:04 +0000 (13:50 +0200)]
testsuite: Remove old cairo/vulkan tests

They are still in the old binary format and haven't worked for a while.

6 years agorendernode: Remove old GVariant (de)serialization code
Timm Bäder [Wed, 24 Apr 2019 11:47:30 +0000 (13:47 +0200)]
rendernode: Remove old GVariant (de)serialization code

We're doing the CSS thing now.

6 years agotestsuite: Add another gl renderer test
Timm Bäder [Wed, 24 Apr 2019 11:25:32 +0000 (13:25 +0200)]
testsuite: Add another gl renderer test

6 years agotestsuite: Remove gl_tests infrastructure
Benjamin Otte [Sat, 27 Apr 2019 04:42:28 +0000 (06:42 +0200)]
testsuite: Remove gl_tests infrastructure

They're now completely migrated to the new compare infrastructure, that
also tests Vulkan and Cairo.

6 years agotestsuite: Add cross-fade-in-opacity test
Timm Bäder [Wed, 24 Apr 2019 10:48:59 +0000 (12:48 +0200)]
testsuite: Add cross-fade-in-opacity test

Making sure that an opacity node doesn't end up reviving a node that's
hidden because the cross-fade has progress 0 or 1.

6 years agotestsuite: Remove broken GL comparison tests
Timm Bäder [Wed, 24 Apr 2019 10:48:13 +0000 (12:48 +0200)]
testsuite: Remove broken GL comparison tests

These only work on special hardware, which not even I have anymore.
We'll need to redo them in a way that works on different systems.

6 years agotestsuite: Print serialized nodes when parsing fails
Timm Bäder [Wed, 24 Apr 2019 09:26:34 +0000 (11:26 +0200)]
testsuite: Print serialized nodes when parsing fails

6 years agotestsuite: add shadow node parser test
Timm Bäder [Wed, 24 Apr 2019 09:26:17 +0000 (11:26 +0200)]
testsuite: add shadow node parser test

6 years agotestsuite: add another nodeparser crash test
Timm Bäder [Wed, 24 Apr 2019 08:49:36 +0000 (10:49 +0200)]
testsuite: add another nodeparser crash test

6 years agotestsuite: Add serialize-deserialize tests
Timm Bäder [Tue, 23 Apr 2019 16:08:06 +0000 (18:08 +0200)]
testsuite: Add serialize-deserialize tests

Check that we can successfully deserialize a node, then serialize it
again and deserialize that result once more.

6 years agotestsuite: Add a broken test
Benjamin Otte [Thu, 21 Mar 2019 05:47:36 +0000 (06:47 +0100)]
testsuite: Add a broken test

This also adds some build magic so all tests that contain "-3d" in them
won't be added to the Cairo renderer.

Of course, this new test is such a test.

6 years agoMove working tests to new directory
Benjamin Otte [Tue, 19 Mar 2019 07:16:07 +0000 (08:16 +0100)]
Move working tests to new directory

These are tests that are working on both GL and Cairo now.

Some tests got black boxes over the areas that aren't easy to compare.

6 years agotestsuite: Port gl tests to text-based format
Timm Bäder [Sat, 2 Mar 2019 10:15:02 +0000 (11:15 +0100)]
testsuite: Port gl tests to text-based format

6 years agotestsuite: Delete some node tests
Benjamin Otte [Sat, 27 Apr 2019 01:27:30 +0000 (03:27 +0200)]
testsuite: Delete some node tests

These are the tests that aren't going to be made to work, so let's just
delete them.

6 years agotestsuite: Add tests for the new node parsing code
Benjamin Otte [Tue, 19 Mar 2019 04:29:20 +0000 (05:29 +0100)]
testsuite: Add tests for the new node parsing code

This adds a test tool gsk/node-parser that takes node files and parses
them.

A few of these node files have been added, for crashes I encountered while
developing the new parsing code.

6 years agoParse render nodes from text files
Timm Bäder [Sat, 2 Mar 2019 15:55:17 +0000 (16:55 +0100)]
Parse render nodes from text files

Instead of the previous approach using GVariant, this new approach uses
human-readable text files as the serialization format for render nodes.

The format is a custom one, but it is inspired by QML and conforms to
the CSS syntax. Because of that, we can use the CSS machinery from GTK
to parse it, and in particular share code to parse properties that GTK's
CSS machinery also supports, such as colors.

This commit breaks all existing usages of node files - such as the
testsuite and various test tools - they will be fixed in further
commits.

6 years agocssparser: Add gtk_css_parser_has_number()
Benjamin Otte [Wed, 1 May 2019 13:27:52 +0000 (15:27 +0200)]
cssparser: Add gtk_css_parser_has_number()

6 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sat, 4 May 2019 19:34:25 +0000 (19:34 +0000)]
Update Basque translation

6 years agoentry: Drop our own Emoji chooser
Matthias Clasen [Sat, 4 May 2019 18:51:27 +0000 (18:51 +0000)]
entry: Drop our own Emoji chooser

We were using one Emoji chooser when triggered
via the context menu, and another one when
triggered via the icon.

Change things to always use the same Emoji
chooser instance.

6 years agowindow: Stop duplicating focus change events
Matthias Clasen [Sat, 4 May 2019 15:18:35 +0000 (15:18 +0000)]
window: Stop duplicating focus change events

We had code in gtkwindow.c that generated duplicate,
and defective, focus-change events, in the following
way:
- gtkmain.c generates a chain of focus-change events
  for moving focus from one window to another
- gtkwindow.c catches a focus-in event in the middle
  of this chain and sets itself as 'active'
- and then it proceeds to generate focus-change
  events towards its own focus widget without a
  related target
This is not necessary since we gtkmain.c already
generates a complete sequence of focus-change events.
So stop doing it.

6 years agowindow: Make _gtk_window_set_is_active static
Matthias Clasen [Sat, 4 May 2019 15:06:40 +0000 (15:06 +0000)]
window: Make _gtk_window_set_is_active static

It is not used outside gtkwindow.c.

6 years agobuilder-tool: Handle GtkWidget::visible properly
Matthias Clasen [Sat, 4 May 2019 15:58:11 +0000 (15:58 +0000)]
builder-tool: Handle GtkWidget::visible properly

This property has a 'smart' default that depends
on the class of the object we're creating. Take
that into account when deciding whether to omit
properties that are set to their default value.

6 years agoemoji chooser: Make Escape work again
Matthias Clasen [Sat, 4 May 2019 16:55:52 +0000 (16:55 +0000)]
emoji chooser: Make Escape work again

Escape is expected to close the Emoji chooser.

6 years agoemoji chooser: Fix handling of no recent Emoji
Matthias Clasen [Sat, 4 May 2019 16:19:43 +0000 (16:19 +0000)]
emoji chooser: Fix handling of no recent Emoji

If the recent section is empty, we want to hide
it, make its button insensitive, and select the
next section, initially. This was not working
properly, since nothing was ever setting the
section box to invisible.

6 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sat, 4 May 2019 09:54:08 +0000 (09:54 +0000)]
Update Basque translation

6 years agodocs: fix typo in function name
Mohammed Sadiq [Sat, 4 May 2019 09:39:35 +0000 (15:09 +0530)]
docs: fix typo in function name

6 years agoemoji chooser: populate incrementally
Matthias Clasen [Sat, 4 May 2019 02:12:02 +0000 (02:12 +0000)]
emoji chooser: populate incrementally

It takes half a second on my system to initially
populate the Emoji chooser. That is too long. Do
the work in 8 millisecond chunks to give GTK a
chance to get some frames done.

6 years agodocs: Add an actions overview
Matthias Clasen [Fri, 3 May 2019 04:58:46 +0000 (04:58 +0000)]
docs: Add an actions overview

Add an introduction chapter explaining actions
in detail. Most of this content is taken from
the GAction HowDoI page.

6 years agodocs: Some additions to the overview
Matthias Clasen [Fri, 3 May 2019 04:57:58 +0000 (04:57 +0000)]
docs: Some additions to the overview

Mention graphene and gsk.

6 years agodocs: Some updates to the input overview
Matthias Clasen [Fri, 3 May 2019 04:22:07 +0000 (04:22 +0000)]
docs: Some updates to the input overview

Remove references to no longer existing apis,
and reword some things. Say surface instead of
window. Start filling out the keyboard section.

6 years agoUpdate Catalan translation
Jordi Mas [Fri, 3 May 2019 18:54:07 +0000 (20:54 +0200)]
Update Catalan translation

6 years agofilechooserbutton: Clean up finalize & destroy
Timm Bäder [Fri, 3 May 2019 06:15:27 +0000 (08:15 +0200)]
filechooserbutton: Clean up finalize & destroy

6 years agofilechooserbutton: Clear model in destroy()
Timm Bäder [Fri, 3 May 2019 06:10:50 +0000 (08:10 +0200)]
filechooserbutton: Clear model in destroy()

Since we're destroying priv->chooser right after. We can't wait until
finalize() since clearing the model will try to work with priv->chooser.

6 years agofilechooserbutton: Use a bin layout
Timm Bäder [Fri, 3 May 2019 06:04:39 +0000 (08:04 +0200)]
filechooserbutton: Use a bin layout

6 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 3 May 2019 12:36:45 +0000 (14:36 +0200)]
Updated Spanish translation

6 years agoUpdate Polish translation
Piotr Drąg [Fri, 3 May 2019 11:42:45 +0000 (13:42 +0200)]
Update Polish translation

6 years agoUpdate POTFILES.skip
Piotr Drąg [Fri, 3 May 2019 11:19:12 +0000 (13:19 +0200)]
Update POTFILES.skip

6 years agoMake the newly added test a bit more robust
Matthias Clasen [Fri, 3 May 2019 02:15:07 +0000 (02:15 +0000)]
Make the newly added test a bit more robust

Follow the style of the other tests and provide
style for both the test and ref.

6 years agoMerge branch 'font-families' into 'master'
Matthias Clasen [Fri, 3 May 2019 01:50:45 +0000 (01:50 +0000)]
Merge branch 'font-families' into 'master'

Font families

Closes #1854

See merge request GNOME/gtk!813

6 years agoAdd a reftest for multiple font families
Matthias Clasen [Fri, 3 May 2019 01:33:09 +0000 (01:33 +0000)]
Add a reftest for multiple font families

This tests that listing multiple font
families in the css font-family property
works as expected.

6 years agocss: Use multiple font-family values
Matthias Clasen [Fri, 3 May 2019 01:18:42 +0000 (01:18 +0000)]
css: Use multiple font-family values

Pango API to support this, so we can implement
this very easily.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1854
6 years agomigration guide: Updates
Matthias Clasen [Thu, 2 May 2019 22:21:30 +0000 (22:21 +0000)]
migration guide: Updates

Add recent changes here.

6 years agoNEWS: Updates
Matthias Clasen [Thu, 2 May 2019 22:20:31 +0000 (22:20 +0000)]
NEWS: Updates

6 years agoMerge branch 'event-controller-sensitive' into 'master'
Matthias Clasen [Thu, 2 May 2019 21:03:41 +0000 (21:03 +0000)]
Merge branch 'event-controller-sensitive' into 'master'

Event controller sensitive

Closes #1861

See merge request GNOME/gtk!812

6 years agofixup! event controller: Don't deliver events to insensitive widgets
Matthias Clasen [Thu, 2 May 2019 20:20:20 +0000 (20:20 +0000)]
fixup! event controller: Don't deliver events to insensitive widgets

6 years agospin button: Listen for ::cancel on gestures
Matthias Clasen [Thu, 2 May 2019 19:09:17 +0000 (19:09 +0000)]
spin button: Listen for ::cancel on gestures

Otherwise, we keep spinning when we should stop.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1861
6 years agowidget: Reset controllers when going numb
Matthias Clasen [Thu, 2 May 2019 19:12:29 +0000 (19:12 +0000)]
widget: Reset controllers when going numb

Reset event controllers when their
widget is going insensitive. This is
the expected behavior.

6 years agogesture: Chain up in filter_event
Matthias Clasen [Thu, 2 May 2019 19:10:49 +0000 (19:10 +0000)]
gesture: Chain up in filter_event

This is the right thing to do.
We want to exclude more events.

6 years agoevent controller: Don't deliver events to insensitive widgets
Matthias Clasen [Thu, 2 May 2019 19:11:30 +0000 (19:11 +0000)]
event controller: Don't deliver events to insensitive widgets

This is another way to avoid delivering events
to insensitive widgets.

6 years agorendernode: Compute border node colors properly
Benjamin Otte [Thu, 2 May 2019 17:22:43 +0000 (19:22 +0200)]
rendernode: Compute border node colors properly

Change the way we compute border color cutoffs to the same method that
browsers use. This method does not consider the corner sizes at all and
only looks at border-width.

6 years agoroundedrect: Mke sure shrinking borders works
Benjamin Otte [Thu, 2 May 2019 17:16:16 +0000 (19:16 +0200)]
roundedrect: Mke sure shrinking borders works

Previously, when borders were too big - ie when a 100x100 rect had only
one 100x100 border, like the black part of ◔ - and then shrinking this
rect by 25px on either side, we'd end up with a 50x50 rect with a 75x75
border, and that's obviously not correct.